#ifndef AUDIO_H
#define AUDIO_H

#include "Sound3D.h"
#include <map>
#include <string>
#include "Singleton.h"

namespace Engine
{
	class Audio : public NonCopyable
	{
		private:
			friend class Singleton <Audio>;
			friend class Sound2D;
			friend class Sound3D;
			Audio(){}

			irrklang::ISoundEngine* m_audioEngine;

		public:
			bool Initialize();

			void SetListener(const Vec3& pos, 
				const Vec3& lookDir, 
				const Vec3& vel = Vec3(), 
				const Vec3& upVec = Vec3(0.0f, 1.0f, 0.0f));

			void PauseAllSounds();

			void SetGlobalVolume(float v);

			~Audio();
	};

	typedef Singleton <Audio> TheAudio;
}

#endif